【译】Azure帮你简化Lakehouse架构
原文:Simplify Your Lakehouse Architecture with Azure Databricks, Delta Lake, and Azure Data Lake Storage[1]
当今的公司正在处理许多不同类型,许多不同大小且以不同频率出现的数据。这些公司正在寻求超越传统数据架构的局限性,以对所有这些数据进行云弹性分析,数据科学和机器学习。解决传统数据体系结构的许多挑战的一种体系结构模式是Lakehouse 体系结构[2]。
Lakehouse 将数据湖的低成本和灵活性与数据仓库的可靠性和性能相结合。Lakehouse 体系结构提供了几个关键功能,包括:
开放格式的可靠,可扩展且低成本的存储 使用 ACID 事务进行 ETL 和流处理 元数据,版本控制,缓存和索引编制,以确保查询时的可管理性和性能 用于 BI 和报告的 SQL API,以及用于数据科学和机器学习的声明性 DataFrame API
Lakehouse 原理和组成部分
在建造 Lakehouse 时,请牢记以下三个关键原则及其相关组成部分:
一个存储所有数据的数据湖,有一个开源格式的管理层。数据湖应该能够容纳任何类型、大小和速度的数据。lake 中的管理数据格式应该是开放的,与云本地安全服务集成,并且应该支持 ACID 事务。 建立在开放标准之上的基础计算层。 应该有一个基础计算层来支持所有核心的 Lakehouse 用例,包括管理数据湖(ETL 和流处理),数据科学和机器学习以及数据湖上的 SQL 分析。该层还应该建立在开放标准之上,以确保快速创新,并且是非锁定的和面向未来的。 轻松集成额外的和(或)新的用例。 没有单一的服务可以做所有的事情。总是会有新的或额外的用例,它们不是核心 lakehouse 用例的一部分。这些新的或额外的用例通常需要专门的服务或工具。这就是为什么管理数据湖、基础计算层和其他服务和工具之间的容易集成是关键需求。
让我们看一下 Azure Databricks 以及 Azure Data Lake Storage 和 Delta Lake 如何使用这 3 条原则来帮助构建 Lakehouse 体系结构。
使用 Azure Data Lake Storage + Delta Lake 的开放式事务存储
第一个原则的一部分是有一个数据湖来存储所有的数据。Azure Data Lake 存储提供了一种廉价、安全的对象存储,能够存储任何大小、任何类型(结构化或非结构化)以及任何速度(快或慢)的数据。第一个原则的第二部分是让数据湖中的被管理数据以支持 ACID 事务的开放格式存在。公司通常使用Delta Lake[3]来建立他们的数据湖的规划区域。Delta Lake 是一种基于 Parquet 的开放文件格式,可以存储在 Azure 数据湖存储中。在其他方面,它支持 ACID 事务(更新、删除,甚至合并)、时间旅行、模式演变(执行),以及作为源和同步的流。这些特性使得 Azure Data Lake 存储中使用的 Delta Lake 格式成为 Lakehouse 架构的首要原则的理想组件。
适用于核心 Lakehouse 用例的 Azure Databricks
上面讨论的第二个原则是在开放标准上构建一个基本的计算层,可以处理所有核心 Lakehouse 用例。Azure Databricks 中的Photon-powered Delta Engine(光驱动 Delta 引擎)[4]是这些核心用例的理想层。Delta 引擎根植于 Apache Spark,支持所有 Spark API,并支持 SQL、Python、R 和 Scala。此外,Azure Databricks 还提供了其他开源框架,包括:
始终是 Spark 的最新最好版本,非常适合ETL(ELT),流处理[5]分布式数据科学和 ML 以及数据湖上的 SQL 分析 针对 Delta Lake 文件格式的优化计算[6],包括数据跳过和数据源缓存功能,可实现更快的查询 预装了一个机器学习运行时[7],优化的模型开发和培训库。这也包括开源的Koalas[8],它使数据科学家能够使用在 Apache Spark 之上运行的 Pandas API 处理大数据。 紧密集成的MLflow[9]可帮助开发,训练和操作(批处理,流或 API)数据科学和机器学习模型
Azure Databricks 还提供了一个协同工作区以及一个 Delta 引擎,该引擎包括一个集成的笔记本(Notebook)环境以及一个SQL Analytics 环境[10],旨在使分析师更轻松地在数据湖上编写 SQL,可视化结果,构建仪表板以及安排查询和警报。所有这些使 Azure Databricks 和 Delta 引擎成为核心 Lakehouse 用例的理想基础计算层。
其他(新)用例的集成服务
最终原则侧重于管理数据湖,基础计算层和其他服务之间的关键集成。这是必要的,因为总会有专门的或新的用例,而不是“核心的”Lakehouse 用例。同样,不同的业务领域可能更喜欢不同的或附加的工具(尤其是在 SQL 分析和 BI 空间中)。建立在 Azure Data Lake Storage,Delta Lake 和 Azure Databricks 上的 Lakehouse 为这些新的或专用的用例提供了轻松的集成。
Azure Data Lake 存储是 Azure 中所有数据和 AI 服务支持的存储服务。 Delta Lake 是一种开源存储格式,具有 Spark,Hive,Presto,Python,Scala 和 Java[11]支持的接口。它还在Azure 服务[12](例如 Azure Synapse 和 Data Factory)中具有本机连接器,并且可以与其他服务(例如 Power BI,HDInsight 和 Azure 机器学习)一起使用。 Azure Databricks 通过与Azure Data Factory[13],Power BI[14]和Azure Synapse[15]之类的服务的优化的安全连接紧密集成到 Azure 生态系统的其余部分中。该服务还包括REST API[16],命令行[17]和JDBC 与 ODBC 接口[18],允许与几乎任何工具或服务集成。
综上所述,Lakehouse 架构模式由于其灵活性、成本效率和开放标准将继续被采用。使用 Azure Databricks、Delta Lake 和 Azure Data Lake Storage 构建架构,为 Lakehouse 用例提供了开放、可扩展和未来验证的基础。
参考资料
Simplify Your Lakehouse Architecture with Azure Databricks, Delta Lake, and Azure Data Lake Storage: https://techcommunity.microsoft.com/t5/analytics-on-azure/simplify-your-lakehouse-architecture-with-azure-databricks-delta/ba-p/2027272
[2]Lakehouse 体系结构: https://dbricks.co/38dVKYc
[3]Delta Lake: https://dbricks.co/2LpAiqg
[4]Photon-powered Delta Engine: https://dbricks.co/38W2hWu
[5]ETL(ELT),流处理: https://dbricks.co/2Log5Rk
[6]优化计算: https://dbricks.co/2MuHSQJ
[7]机器学习运行时: https://dbricks.co/2JJU9zL
[8]Koalas: https://dbricks.co/39fZ5Fx
[9]MLflow: https://dbricks.co/3pPzfyM
[10]SQL Analytics 环境: https://dbricks.co/2LoqSek
[11]Python,Scala 和 Java: https://dbricks.co/2Xa7O6n
[12]Azure 服务: https://dbricks.co/38dPQq3
[13]Azure Data Factory: https://dbricks.co/3hLxP5A
[14]Power BI: https://dbricks.co/2MAp1DZ
[15]Azure Synapse: https://dbricks.co/2LoZlcE
[16]REST API: https://dbricks.co/3hGo9t1
[17]命令行: https://dbricks.co/3b7qxrj
[18]JDBC 与 ODBC 接口: https://dbricks.co/2XcI8pQ
欢迎关注公众号
有兴趣加群讨论数据挖掘和分析的朋友可以加我微信(witwall),暗号:入群